<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 100px;
            height: 100px;
            background-color: skyblue;
        }
    </style>
</head>
<body>
    <div class="box">

    </div>
    <input type="text" id="ipt">
</body>
<script>
   
    const box = document.querySelector('.box');
    box.onmousemove = throttle(center,2000);

    const ipt = document.querySelector('#ipt');
    ipt.oninput = debounce(center,2000);
    //节流
    //核心代码
    function center(e) {
        console.log('111');
        console.log(this, e);
    }
    
    function throttle(fn, time) {
        let lastTime = 0;
        return function(e) {
            let nowTime = Date.now();
            if (nowTime - lastTime < time) {
                return;
            }
            lastTime = Date.now();
            //调用核心代码
            fn.call(this,e);
        }
    }
    //防抖
    function debounce(fn, time) {
        let timer = null;
        return function(e) {
            if (timer) clearTimeout(timer);
            timer = setTimeout(() => {
                fn.call(this, e);
                timer = null;
            }, time)
            console.log('timer=', timer);
        }
    }
</script>
</html>